home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 8174 / 8174.xpi / chrome / antbar.jar / content / lib / bugreport.js < prev    next >
Text File  |  2009-12-30  |  2KB  |  75 lines

  1. //
  2. // bugreport.js
  3. // Firefox
  4. //
  5. // Created by Seed on 2008-11-07
  6. // Copyright 2008 Ant.com. All right reserved
  7.  
  8. var AntBugReport =
  9. {
  10.    logs: new AntArray(),
  11.    init: function ()
  12.    {
  13.      var cs = AntLib.CCSV("@mozilla.org/consoleservice;1", "nsIConsoleService");
  14.      cs.registerListener(this);
  15.      //closure pattern
  16.      var that = this;
  17.      AntWatchUrl.addWatcher(
  18.       function(uri)
  19.       {
  20.         if (uri.spec.indexOf("http://contact.ant.com") == 0)
  21.           that.fillReport();
  22.       });
  23.    },
  24.    observe: function (aMsg)
  25.    {
  26.      if (aMsg.message.indexOf("[JavaScript Warning:") != 0)
  27.      //ignoring warnings
  28.        this.logs.push(aMsg.message);
  29.    },
  30.    clean: function ()
  31.    {
  32.      this.logs = new AntArray();
  33.    },
  34.    getAll: function ()
  35.    {
  36.      var cs = AntLib.CCSV("@mozilla.org/consoleservice;1", "nsIConsoleService");
  37.      var str = "";
  38.      this.logs.each(function (msg)
  39.      {
  40.            str += msg + "\n";
  41.      });
  42. //          var messages = {};
  43. //          var count = {};
  44. //          cs.getMessageArray(messages, count);
  45. //          for (var i = 0; i < count.value; i++)
  46. //                str += messages.value[i].message + "\n";
  47.      return str;
  48.   },
  49.   getAddonsList: function ()
  50.   {
  51.     var em = AntLib.CCSV("@mozilla.org/extensions/manager;1", "nsIExtensionManager");
  52.     var list = em.getItemList(AntLib.CI("nsIUpdateItem")["TYPE_EXTENSION"] , {});
  53.     var str = "";
  54.   
  55.     for each (var l in list)
  56.     {
  57.       str += l.id + ": " + l.objectSource + "\n";
  58.     }
  59.     return str;
  60.   },
  61.   fillReport: function ()
  62.   {
  63.     if (content && content.document)
  64.     {
  65.        var doc = content.document;
  66.        if (doc.getElementById("errorlog"))
  67.          doc.getElementById("errorlog").value = this.getAll();
  68.        if (doc.getElementById("addons"))
  69.          doc.getElementById("addons").value = this.getAddonsList();
  70.     }
  71.  
  72.   }
  73.   
  74. };
  75.